package surface;

import shape.Shape;
import storage.Memento;

public interface Canvas {
	Memento saveMemento();

	void restoreMemento(Memento memento);

	void addShape(Shape shape);

	Shape getShape(int index);
	
	void updateShape(int index, Shape shape);
	
	void displayShapes();

	void notifyObservers(boolean mouseReleased);
	
	void attach(CanvasObserver observer);
	
	void detach(CanvasObserver observer);
}